home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <dos.h>
- #include <conio.h>
-
- struct PointActifStruct { int X, Y; };
-
- struct dessin_curseur
- { PointActifStruct PointActif;
- unsigned ScreenMask[16];
- unsigned CursorMask[16];
- };
-
- /* mettre ici les conts */
- const dessin_curseur hand = {{0,0},
- {65407,65087,65087,54335,
- 32831,32831,32831,15,
- 7,7,7,7,
- 7,15,15,32783},
- {128,320,320,11072,
- 21824,21824,21824,32880,
- 32840,32840,32840,32776,
- 32776,32784,32784,32752}};
- const dessin_curseur tetemort = {{0,0},
- {65535,57359,57335,42011,
- 44253,44253,42013,49149,
- 54779,57339,57335,57231,
- 54655,54655,49279,65535},
- {0,8176,8200,23524,
- 21282,21282,23522,16386,
- 10756,8196,8200,8304,
- 10880,10880,16256,0}};
-
- void initmode()
- { _AH = 0x0;
- _AL = 0x13;
- geninterrupt(0x10);
- }
- void MontrePointeur()
- {
- _AX = 0x1;
- geninterrupt(0x33);
- }
-
- int MouseStat(int *Nbbouton)
- { int Status;
- _AX = 0x0;
- geninterrupt(0x33);
- Status = _AX;
- *Nbbouton = _BX;
- return Status;
- }
-
- void change_Cursor(const dessin_curseur &NewCursor)
- { REGS regs;
- SREGS sregs;
- regs.x.ax = 9;
- regs.x.bx = NewCursor.PointActif.X;
- regs.x.cx = NewCursor.PointActif.Y;
- regs.x.dx = FP_OFF(NewCursor.ScreenMask);
- sregs.es = FP_SEG(NewCursor.ScreenMask);
- int86x(0x33, ®s, ®s, &sregs);
- }
-
- void main()
- {int NbBouton;
- initmode();
- if (MouseStat(&NbBouton))
- {MontrePointeur();
- change_Cursor(hand);
- getch();
- change_Cursor(tetemort);
- getch();
- }
- textmode(C80);
- }
-